
package com.ktgj.common.spring.entity.iata.iata_ordercancelrs;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * <p>TicketDocInfoType complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="TicketDocInfoType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="BaggageAllowance" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}BaggageAllowanceType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="BookingAgency" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}TravelAgencyType" minOccurs="0"/&gt;
 *         &lt;element name="BookingRef" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}BookingRefType" maxOccurs="unbounded"/&gt;
 *         &lt;element name="BookletQty" type="{http://www.w3.org/2001/XMLSchema}decimal" minOccurs="0"/&gt;
 *         &lt;element name="CarrierFee" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}CarrierFeeType" minOccurs="0"/&gt;
 *         &lt;element name="Commission" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}CommissionType" minOccurs="0"/&gt;
 *         &lt;element name="EndorsementText" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="FareDetail" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}FareDetailType" minOccurs="0"/&gt;
 *         &lt;element name="OrderRef" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}OrderRefType" minOccurs="0"/&gt;
 *         &lt;element name="OriginalIssueInfo" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}TicketIssuanceInfoType" minOccurs="0"/&gt;
 *         &lt;element name="OriginDest" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}OriginDestType" minOccurs="0"/&gt;
 *         &lt;element name="PaymentInfo" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}PaymentInfoType" maxOccurs="unbounded"/&gt;
 *         &lt;element name="Penalty" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}PenaltyType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *         &lt;element name="PricingCountryCode" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/&gt;
 *         &lt;element name="PricingDate" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" minOccurs="0"/&gt;
 *         &lt;element name="PricingTime" type="{http://www.w3.org/2001/XMLSchema}anySimpleType" minOccurs="0"/&gt;
 *         &lt;element name="ServicingAgency" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}TravelAgencyType" minOccurs="0"/&gt;
 *         &lt;element name="Ticket" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}TicketType" maxOccurs="unbounded"/&gt;
 *         &lt;element name="TicketRefIdentification" type="{http://www.iata.org/IATA/2015/00/2018.2/IATA_OrderCancelRS}TicketRefIdentificationType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "TicketDocInfoType", propOrder = {
    "baggageAllowance",
    "bookingAgency",
    "bookingRef",
    "bookletQty",
    "carrierFee",
    "commission",
    "endorsementText",
    "fareDetail",
    "orderRef",
    "originalIssueInfo",
    "originDest",
    "paymentInfo",
    "penalty",
    "pricingCountryCode",
    "pricingDate",
    "pricingTime",
    "servicingAgency",
    "ticket",
    "ticketRefIdentification"
})
public class TicketDocInfoType {

    @XmlElement(name = "BaggageAllowance")
    protected List<BaggageAllowanceType> baggageAllowance;
    @XmlElement(name = "BookingAgency")
    protected TravelAgencyType bookingAgency;
    @XmlElement(name = "BookingRef", required = true)
    protected List<BookingRefType> bookingRef;
    @XmlElement(name = "BookletQty")
    protected BigDecimal bookletQty;
    @XmlElement(name = "CarrierFee")
    protected CarrierFeeType carrierFee;
    @XmlElement(name = "Commission")
    protected CommissionType commission;
    @XmlElement(name = "EndorsementText")
    protected String endorsementText;
    @XmlElement(name = "FareDetail")
    protected FareDetailType fareDetail;
    @XmlElement(name = "OrderRef")
    protected OrderRefType orderRef;
    @XmlElement(name = "OriginalIssueInfo")
    protected TicketIssuanceInfoType originalIssueInfo;
    @XmlElement(name = "OriginDest")
    protected OriginDestType originDest;
    @XmlElement(name = "PaymentInfo", required = true)
    protected List<PaymentInfoType> paymentInfo;
    @XmlElement(name = "Penalty")
    protected List<PenaltyType> penalty;
    @XmlElement(name = "PricingCountryCode")
    protected String pricingCountryCode;
    @XmlElement(name = "PricingDate")
    protected Object pricingDate;
    @XmlElement(name = "PricingTime")
    protected Object pricingTime;
    @XmlElement(name = "ServicingAgency")
    protected TravelAgencyType servicingAgency;
    @XmlElement(name = "Ticket", required = true)
    protected List<TicketType> ticket;
    @XmlElement(name = "TicketRefIdentification")
    protected List<TicketRefIdentificationType> ticketRefIdentification;

    /**
     * Gets the value of the baggageAllowance property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the baggageAllowance property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getBaggageAllowance().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link BaggageAllowanceType }
     * 
     * 
     */
    public List<BaggageAllowanceType> getBaggageAllowance() {
        if (baggageAllowance == null) {
            baggageAllowance = new ArrayList<BaggageAllowanceType>();
        }
        return this.baggageAllowance;
    }

    /**
     * 获取bookingAgency属性的值。
     * 
     * @return
     *     possible object is
     *     {@link TravelAgencyType }
     *     
     */
    public TravelAgencyType getBookingAgency() {
        return bookingAgency;
    }

    /**
     * 设置bookingAgency属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link TravelAgencyType }
     *     
     */
    public void setBookingAgency(TravelAgencyType value) {
        this.bookingAgency = value;
    }

    /**
     * Gets the value of the bookingRef property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the bookingRef property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getBookingRef().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link BookingRefType }
     * 
     * 
     */
    public List<BookingRefType> getBookingRef() {
        if (bookingRef == null) {
            bookingRef = new ArrayList<BookingRefType>();
        }
        return this.bookingRef;
    }

    /**
     * 获取bookletQty属性的值。
     * 
     * @return
     *     possible object is
     *     {@link BigDecimal }
     *     
     */
    public BigDecimal getBookletQty() {
        return bookletQty;
    }

    /**
     * 设置bookletQty属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link BigDecimal }
     *     
     */
    public void setBookletQty(BigDecimal value) {
        this.bookletQty = value;
    }

    /**
     * 获取carrierFee属性的值。
     * 
     * @return
     *     possible object is
     *     {@link CarrierFeeType }
     *     
     */
    public CarrierFeeType getCarrierFee() {
        return carrierFee;
    }

    /**
     * 设置carrierFee属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link CarrierFeeType }
     *     
     */
    public void setCarrierFee(CarrierFeeType value) {
        this.carrierFee = value;
    }

    /**
     * 获取commission属性的值。
     * 
     * @return
     *     possible object is
     *     {@link CommissionType }
     *     
     */
    public CommissionType getCommission() {
        return commission;
    }

    /**
     * 设置commission属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link CommissionType }
     *     
     */
    public void setCommission(CommissionType value) {
        this.commission = value;
    }

    /**
     * 获取endorsementText属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getEndorsementText() {
        return endorsementText;
    }

    /**
     * 设置endorsementText属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setEndorsementText(String value) {
        this.endorsementText = value;
    }

    /**
     * 获取fareDetail属性的值。
     * 
     * @return
     *     possible object is
     *     {@link FareDetailType }
     *     
     */
    public FareDetailType getFareDetail() {
        return fareDetail;
    }

    /**
     * 设置fareDetail属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link FareDetailType }
     *     
     */
    public void setFareDetail(FareDetailType value) {
        this.fareDetail = value;
    }

    /**
     * 获取orderRef属性的值。
     * 
     * @return
     *     possible object is
     *     {@link OrderRefType }
     *     
     */
    public OrderRefType getOrderRef() {
        return orderRef;
    }

    /**
     * 设置orderRef属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link OrderRefType }
     *     
     */
    public void setOrderRef(OrderRefType value) {
        this.orderRef = value;
    }

    /**
     * 获取originalIssueInfo属性的值。
     * 
     * @return
     *     possible object is
     *     {@link TicketIssuanceInfoType }
     *     
     */
    public TicketIssuanceInfoType getOriginalIssueInfo() {
        return originalIssueInfo;
    }

    /**
     * 设置originalIssueInfo属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link TicketIssuanceInfoType }
     *     
     */
    public void setOriginalIssueInfo(TicketIssuanceInfoType value) {
        this.originalIssueInfo = value;
    }

    /**
     * 获取originDest属性的值。
     * 
     * @return
     *     possible object is
     *     {@link OriginDestType }
     *     
     */
    public OriginDestType getOriginDest() {
        return originDest;
    }

    /**
     * 设置originDest属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link OriginDestType }
     *     
     */
    public void setOriginDest(OriginDestType value) {
        this.originDest = value;
    }

    /**
     * Gets the value of the paymentInfo property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the paymentInfo property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPaymentInfo().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link PaymentInfoType }
     * 
     * 
     */
    public List<PaymentInfoType> getPaymentInfo() {
        if (paymentInfo == null) {
            paymentInfo = new ArrayList<PaymentInfoType>();
        }
        return this.paymentInfo;
    }

    /**
     * Gets the value of the penalty property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the penalty property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getPenalty().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link PenaltyType }
     * 
     * 
     */
    public List<PenaltyType> getPenalty() {
        if (penalty == null) {
            penalty = new ArrayList<PenaltyType>();
        }
        return this.penalty;
    }

    /**
     * 获取pricingCountryCode属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getPricingCountryCode() {
        return pricingCountryCode;
    }

    /**
     * 设置pricingCountryCode属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setPricingCountryCode(String value) {
        this.pricingCountryCode = value;
    }

    /**
     * 获取pricingDate属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Object }
     *     
     */
    public Object getPricingDate() {
        return pricingDate;
    }

    /**
     * 设置pricingDate属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Object }
     *     
     */
    public void setPricingDate(Object value) {
        this.pricingDate = value;
    }

    /**
     * 获取pricingTime属性的值。
     * 
     * @return
     *     possible object is
     *     {@link Object }
     *     
     */
    public Object getPricingTime() {
        return pricingTime;
    }

    /**
     * 设置pricingTime属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link Object }
     *     
     */
    public void setPricingTime(Object value) {
        this.pricingTime = value;
    }

    /**
     * 获取servicingAgency属性的值。
     * 
     * @return
     *     possible object is
     *     {@link TravelAgencyType }
     *     
     */
    public TravelAgencyType getServicingAgency() {
        return servicingAgency;
    }

    /**
     * 设置servicingAgency属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link TravelAgencyType }
     *     
     */
    public void setServicingAgency(TravelAgencyType value) {
        this.servicingAgency = value;
    }

    /**
     * Gets the value of the ticket property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the ticket property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getTicket().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link TicketType }
     * 
     * 
     */
    public List<TicketType> getTicket() {
        if (ticket == null) {
            ticket = new ArrayList<TicketType>();
        }
        return this.ticket;
    }

    /**
     * Gets the value of the ticketRefIdentification property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the ticketRefIdentification property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getTicketRefIdentification().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link TicketRefIdentificationType }
     * 
     * 
     */
    public List<TicketRefIdentificationType> getTicketRefIdentification() {
        if (ticketRefIdentification == null) {
            ticketRefIdentification = new ArrayList<TicketRefIdentificationType>();
        }
        return this.ticketRefIdentification;
    }

}
